package org.langqiao.network.socket;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class SendCardJFrame  extends JFrame{//发牌程序服务端
	public SendCardJFrame(int port,int max,int n)throws IOException//构造函数，端口、牌数、人数
	{
		super("发牌程序	"+InetAddress.getLocalHost()+":"+port);
		this.setBounds(320,240,360,220);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		JTextArea text=new JTextArea();
		text.setLineWrap(true);//自动换行
		this.getContentPane().add(text);
		this.setVisible(true);
		Socket sockets[]=new Socket[n];
		DataOutputStream douts[]=new DataOutputStream[n];//数据字节输出流
		for(int i=0;i<n;i++)
		{
			text.append(port+"等待TCP连接,");
			sockets[i]=new ServerSocket(port).accept();//等待接收客户端 的连接程序
			text.append("建立与"+sockets[i].getInetAddress()+":"+sockets[i].getPort()+"的TCP连接");
			douts[i]=new DataOutputStream(sockets[i].getOutputStream());//获得socket输出流
			port++;//在下一个端口等待下一个客户端
		}
		text.append("Sender:\n");
		int k=1;//一下是向n个客户端发送max张牌
		while(k<=max)
			for(int i=0;k<max&&i<douts.length;i++)
			{
				douts[i].writeInt(k);
				text.append(k+"");
				k++;
				if(k%20==0)
					text.append("\n");
			}
		for(int i=0;i<n;i++)
		{
			douts[i].close();//关闭输出流
			sockets[i].close();//关闭socket连接
				
		}
	}
	public static void main(String[] args)throws IOException
	{
		new SendCardJFrame(2001,52,4);
	}
	

}
